package com.hkyp.ss.course.apis;


import com.hkyp.ss.course.apis.dto.request.*;
import com.hkyp.ss.course.apis.dto.response.UserAvatarRequestDTO;
import com.hkyp.ss.course.apis.dto.response.UserBaseInfoDTO;
import com.hkyp.ss.course.apis.dto.response.UserHomePageVO;
import com.hkyp.ss.course.apis.exception.BusinessException;
import com.hkyp.ss.course.apis.exception.DaoException;
import com.hkyp.ss.course.apis.exception.UnacceptableException;

import java.util.List;

public interface UserService {
    void putUserAvatar(UserAvatarRequestDTO avatarRequestDTO, Long userId) throws DaoException;
    /**
     * 重置密码
     * @param RequestDTO
     * @throws UnacceptableException
     */
    void reSetPwdSendEmail(ResetPwd2RequestDTO RequestDTO) throws UnacceptableException;
    /**
     * 重置密码发送邮件
     * @param modifyEmailPreDTO
     * @throws UnacceptableException
     */
    void reSetPwdSendEmailPre(ResetPwdDTO modifyEmailPreDTO) throws UnacceptableException;
    //String upload(MultipartFile file, Long userId);
    //生成数据时使用
    void saveUser(List users);

    UserHomePageVO selectUserHomePage(Long userId);

    String doLogin(LoginDTO loginDTO)throws UnacceptableException,BusinessException;

    void doRegister(LoginDTO loginDTO, String basePath) throws UnacceptableException,BusinessException;

    void activeEmail(String token) throws UnacceptableException,BusinessException;

    void postUserBaseInfo(UserBaseInfoDTO userBaseInfoDTO, Long userId)throws UnacceptableException;

    UserBaseInfoDTO getUserBaseInfo(Long userId)throws UnacceptableException;

    void modifyPassword(PasswordDTO passwordDTO, Long userId)throws UnacceptableException;

    void modifyEmailPre(ModifyEmailPreDTO modifyEmailPreDTO)throws UnacceptableException;

    void modifyEmail(String token)throws UnacceptableException;
}
